關於介紹 MVC、MVP、MVVM 的文章,
網絡上隨便搜索都可以找到超多。
MVC、MVP、MVVM 都是一種軟體結構模式,
我在這篇文章中會大致介紹 MVC、MVP、MVVM。
MVC 模式(Model-View–Controller)把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
Controller 是 Model 和 View 之間的連接器。
在 MVC 中,Controller 管理 View 的整個生命周期,Controller 持有 View、Model,Controller 和 View 之間不夠獨立,ViewController 最後需要處理很多事情,因此變得很厚重。
這也導致 Controller 測試困難,View 層的控制能力太弱,
同時也因為 Controller 處理所有的業務邏輯,獨立性強,所以當業務邏輯需要變更的時候,只需要動到 Controller 就好了。
鏈接附上:https://zh.wikipedia.org/zh-tw/MVC
MVP(Model-View-Presenter),是電腦軟體設計工程中一種對針對 MVC 模式,再審議後所延伸提出的一種軟體設計模式。
MVP 的產生是為了解決 MVC 中的 Controller 越來越大包以至於測試困難的問題。
在 MVP 中 View 管理 Presenter,Presenter 管理 Model,View 不能直接訪問 Model,
通過這樣,將 Presenter 真正獨立出來,所以測試的時候就可以獨立測試 Presenter 業務邏輯了。
鏈接附上:https://zh.wikipedia.org/wiki/MVC
MVVM(Model–View–ViewModel)
在 MVVM 中,View 可以獨立於 Model,ViewModel 也可以連接到一個 view 或者多個 view 上,View、Model 之間的獨立性強,將業務邏輯與視圖獨立開來。
同時也能把一些視圖邏輯放在一個 ViewModel 里面,這可以讓很多 View 重複用這段視圖邏輯,可以減少寫重複的工作。
不過也因為 Model、View 的緊密聯繫、互相綁定,所以一旦出了bug,則很難判斷到底是 Model 還是 View 上出了問題。
鏈接附上:https://zh.wikipedia.org/zh-tw/MVVM
這真的是淺談啦,
我在學習過程上主要是用 MVVM 進行開發的,
所以對 MVC、MVP 不太了解,
因此寫這篇文也是為了讓我更了解這三種結構模式。